草庐IT

@order 注解用法

全部标签

java - 从 Taglet 访问 Java 注解

我正在做一个项目,我们有一些自定义的Taglet类,用于修改Javadoc(例如链接到SVN中的源代码,添加引用)等等。我们想要做的事情之一要做的是能够获取源中使用的注释并操作来自它们的信息。似乎Taglet接口(interface)没有提供一种简单的方法来访问Java源代码中的注释。有人知道这是否可能吗?我正在使用JDK1.5 最佳答案 如果您的taglet是从标准doclet调用的,您可以访问其内部状态:importcom.sun.tools.doclets.standard.Standard;ClassDoccurrentcd

java - 在注解上使用默认的类文字值

我想用下面的注释来注释给定bean类的一些字段:@Target({FIELD})@Retention(RUNTIME)public@interfaceProcess{Classusing()defaultDefaultImplStrategy.class;}在不深入领域的情况下,每个带注释的属性都需要在其上定义一个ProcessingStrategy,因此需要在注释上使用using()属性。这很好,并且按照我希望的方式工作。我还想指定策略的默认实现,大多数时候使用(下面定义的默认值)。这在Eclipse中运行良好。但是,当我尝试使用常规JDK​​(通过maven调用)编译它时,出现以下

java - 如何通过在 Java 中检索异常方法来获取注解?

这次我想从抛出的异常中获取注解。我的示例代码是这样的:publicclassP{@MyAnnotation(stringValue="FirstType",intValue=999)publicvoidtest()throwsException{//...thrownewNullPointerException();}@MyAnnotation(stringValue="SecondType",intValue=111)publicvoidtest(inta)throwsException{//...thrownewNullPointerException();}}上面的类包含2个方法

java - 无界通配符参数化类型数组的实际用法是什么?

我正在通读AngelikaLangerParametrizedTypeWorkAround.我明白很多在这里的概念中,我确实理解什么是无界通配符参数化类型。尽管从引用文献中引用它指出:-staticvoidtest(){Pair[]intPairArr=newPair[10];addElements(intPairArr);Pairpair=intPairArr[1];//error-1Integeri=pair.getFirst();pair.setSecond(i);}staticvoidaddElements(Object[]objArr){objArr[0]=newPair(0

java - 通过自定义注解注入(inject)常量

我的代码中有一堆常量,用于我系统的各种可调整属性。我将它们全部移动到中央.properties文件中。我当前的解决方案是使用一个Properties.java静态加载.properties文件并公开各种getter方法,如下所示:publicclassProperties{privatestaticfinalStringFILE_NAME="myfile.properties";privatestaticfinaljava.util.Propertiesprops;static{InputStreamin=Properties.class.getClassLoader().getRes

java - 在 HQL order by 子句中处理 SQL 注入(inject)

在HibernateHQLorderby子句中是否有一种简单的方法来处理SQL注入(inject)。命名参数显然不适用于它。编辑:请随意发布您处理此问题的方法。我想看看其他人的解决方案并从中学习。感谢任何建议和解决方案。 最佳答案 您可以使用HibernatecriteriaAPI而不是HQL。标准API检查订单标准是否引用有效属性。如果你尝试这样的事情:publicvoidtestInjection(){StringorderBy="this_.typedesc,type";Criteriacrit=this.getSession

java - @Model注解和MVC

Welddocumentation声明javax.enterprise.inject.Model注释是为Controller设计的(合乎逻辑,因为它将bean标记为@RequestScoped和@Named)。但是为什么命名为模型而不是Controller呢? 最佳答案 因为规范并不假设您使用的模式首先涉及到Controller。还有其他模式和命名约定。例如,seam使用“Action”而不是“Controller”(尽管这些概念并不完全对应) 关于java-@Model注解和MVC,我

java - 通缉 : Recurrence Formula of In-Order binary tree output method

我在寻找这个java方法的递推公式时遇到了麻烦voidprintInorder(Nodev){if(v!=null){printInorder(v.getLeft());System.out.println(v.getData());printInorder(v.getRight());}}一些标准:它是一棵完全二叉树(每个内结都有2个child,每片叶子的深度相同)这棵树有n个节点,复杂度为O(n)我必须找到与n结的树的深度h相关的递归公式,作为额外的奖励,我需要外推显式从中得出O(n)的公式。现在,这就是我得到的:d=depthofthetreec=constantruntimef

java - WeakHashMap的用法?

这个问题在这里已经有了答案:WhenwouldyouuseaWeakHashMaporaWeakReference?(10个答案)关闭4年前。WeakHashMap是Map接口(interface)的实现,值对象的内存可以通过GrabageCollector回收如果程序的任何部分不再引用相应的键。因此,如果程序中不再使用key。它的条目对象将被垃圾收集,无论其用途如何。到这里为止都清楚这与HashMap不同,后者的值对象保留在HashMap中,即使不再引用键也是如此。我们需要显式调用HashMap对象上的remove()方法删除值。调用remove只会从map中删除条目。它的GC准备就

java - 注解处理器,获取方法参数的修饰符

我目前在一个项目中使用Java的自定义注释。我想强制我的注解的用户,如果他用@Foo对方法进行注解,他必须在方法参数列表中至少声明一个finalbooleanb。所以它应该看起来像这样:@Foopublicvoidfoo(finalbooleanb){}@Foopublicvoidbar(){}//Thisshouldresultinanerror使用注释处理器,我可以检索变量的类型但不能检索最终修饰符。如果我想检索如下代码所示的修饰符集,尽管最终修饰符出现在参数上,但该集合将始终为空。for(VariableElementparameter:method.getParameters(